import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import axios from 'axios'
import store from './store'

axios.defaults.baseURL='http://apis.imooc.com/api/'

axios.interceptors.request.use(config=>{
    config.params = { ...config.params, icode: 'D673EC3172D074E8' } // get 请求，添加到 url 中
    if(config.data instanceof FormData){      // 如果是上传文件，添加到 FormData 中
        config.data.append('icode','D673EC3172D074E8')
    }else{   // 普通的 body 对象，添加到 data 中
        config.data = { ...config.data, icode: 'D673EC3172D074E8' }
    }
    store.commit('setLoading',true)   //开始加载
    store.commit('setError',{status:false,message:''})
    return config
})

axios.interceptors.response.use(config=>{
    setTimeout(()=>{
        store.commit('setLoading',false)    
    },1000) //1秒后加载结束
    return config
},e=>{
    console.log(e.response)
    const {error}=e.response.data
    store.commit('setError',{status:true,message:error});   //拦截到的请求有错误，将status状态设置为true
    store.commit('setLoading',false)
    return Promise.reject(error)
})  

const app = createApp(App)  //创建一个vue实例
app.use(router) //安装 router 插件
app.use(store)
app.mount('#app')   //实例挂载到id为app这个DOM元素上
